package cn.ljy.authority.model;


import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 部门
 */
@ApiModel(value="部门")
@Data
@NoArgsConstructor
public class SysDepartment implements java.io.Serializable{
    private Long id;
    @NotBlank(message = "部门名称不能为空")
    @Length(min = 1, max = 30, message = "部门名称的长度必须在 {min} - {max} 之间")
    private String name;
    @NotNull(message = "排序不能为空")
    private Integer sort;//排序，升序
    private Long parentId;//上级部门
    private Date createTime;//创建时间

    //非数据库字段
    private List<SysDepartment> children=new ArrayList<>();//该部门拥有的子部门集合（递归）
    private Integer userNumber;//员工数

    public SysDepartment(Long id) {
        this.id = id;
    }
}
